home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Magazin: Amiga-CD 1997 November & December
/
Amiga-CD 1997 #11-12.iso
/
pd-disketten
/
ungepackt
/
9_95
/
apd-9-95-2
/
arexx-workshop
/
listings
/
listing1
< prev
next >
Wrap
Text File
|
1996-01-25
|
4KB
|
86 lines
/* APIGWindow */
/* Vorbereitungen für apig-Oberfläche ----------------------- */
call addlib("rexxsupport.library",0,-30,0) /* zus. Libraries */
call addlib("apig.library",0,-30,0) /* einbinden */
call SET_APIG_GLOBALS( /* apig-Funktionen initialisieren */
portname = "apigWindow" /* Portnamen festlegen */
portlist = Showlist('p') /* Portliste einlesen */
if find(portlist,portname) > 0 /* Wenn portname in portlist */
then exit /* dann Prg beenden */
p = openport(portname) /* ARexx-Port öffnen */
scr = LOCKPUBSCREEN("Workbench") /* Screenpointer */
scrvinfo = GETVISUALINFO(scr) /* Alle nötigen */
scrfont = GETVALUE(scr,40,4,'p') /* Pointer für */
glistpointer = ALLOCVEC(4,MEMF_CLEAR) /* Gadget-Struktur */
conxgad = CREATECONTEXT(glistpointer) /* einlesen */
previousgadget = conxgad
/* Gadget-Struktur erstellen -------------------------------- */
okbutton = 10 /* ID für Button festlegen */
gadname = "OK" /* Name, */
gadid = okbutton /* Identifier, */
top = 10 /* Position der */
lft = 10 /* linken oberen Ecke, */
wdt = 50 /* Länge und */
hgt = 15 /* Höhe des Gadgets festlegen */
/* Gadget-Struktur initialisieren --------------------------- */
newgadx = MAKENEWGADGET(scrvinfo,scrfont,lft,top,
,wdt,hgt,gadname,PLACETEXT_IN,gadid,0)
previousgadget = CREATEGADGET(BUTTON_KIND,previousgadget,
,newgadx,TAG_DONE,0)
/* Fenster erstellen und öffnen ----------------------------- */
winlft = 10; wintop = 10 /* Position links,oben */
winhgt = 52; winwdt = 78 /* Höhe, Breite */
winpen1 = 2 ; winpen2 = 4 /* Farben festlegen */
wintitle = "My first apig-Window" /* Titel des Fensters. */
/* Attribute, auf die per Message reagiert werden sollen ---- */
winidcmp = CLOSEWINDOW+GADGETUP
/* Fenstereigenschaften festlegen und Fenster öffnen ---------*/
winflags = WINDOWCLOSE+WINDOWDRAG+WINDOWDEPTH+GIMMEZEROZERO
win1 = OPENWINDOW(portname,winlft,wintop,winwdt,winhgt,winpen1,
,winpen2,winidcmp,winflags,wintitle,scr,0,0,0,conxgad)
/* Fensterinhalt-update, da mit erstellte Gadgets erscheinen. */
call GT_REFRESHWINDOW(win1,null())
/* Hauptprogramm-Steuerschleife ----------------------------- */
/* funktioniert fast wie TestMsg aus Folge 1 */
exitme = 0
do forever
x = waitpkt(portname)
do forever
msg = getpkt(portname)
if msg = "0000 0000"x then leave
class = getarg(msg,0)
if class = DIE then exitme = 1
if class = CLOSEWINDOW then exitme = 1
if class = GADGETUP then do
gadid = getarg(msg,9)
select
when gadid = okbutton then exitme = 1
otherwise nop
end
end
x = reply(msg,0)
end
if exitme = 1 then leave
end
/* Fenster schließen und Resourcen freigeben ---------------- */
call CLOSEWINDOW(win1) /* Fenster schließen und */
call UNLOCKPUBSCREEN(null(),scr) /* sämtliche */
call FREEVISUALINFO(scrvinfo) /* Zeiger */
call FREEGADGETS(conxgad) /* und */
call FREETHIS(newgadx) /* Resourcen */
call FREEVEC(glistpointer) /* wieder freigeben */
exit /* Programmende */